#include<iostream>
#include<unistd.h>
#include<fcntl.h>
// //设置为非阻塞
// void SetNonBlocking(int fd){
//     int flags = fcntl(fd, F_GETFL);
//     if(flags == -1){
//         std::cerr << "fcntl F_GETFL error" << std::endl;
//         return;
//     }
//     int flags_new =fcntl(fd,F_SETFL,flags|O_NONBLOCK);//设置为非阻塞
//     if(flags_new == -1){
//         std::cerr << "fcntl F_SETFL error" << std::endl;
//         return;
//     }
// }
// int main(){
//     SetNonBlocking(0);
//     char buffer[1024];
//     //linuxctrl+d表示文件结束符EOF
//     while(1){
//         ssize_t len =read(0,buffer,sizeof(buffer));
//         if(len>0){
//             buffer[len-1]=0;
//             std::cout<<buffer<<std::endl;
//         }else if(len<0){
//             //读出错和底层没有数据准备好
//             if(errno==EAGAIN||errno==EWOULDBLOCK){
//                 std::cout<<"数据没有准备好"<<std::endl;
//                 sleep(1);
//                 continue;
//             }
//         }else{
//             break;
//         }
//         sleep(1);
//         std::cout<<"non-block"<<" len:"<<len<<std::endl;
//     }
// }

